package com.zzy.system.domain;

import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 功能描述: 观麦商品
 *
 * @author zhouzhiyong
 * @date 2024/07/17 22:54
 */
@Data
public class GuanmaiSku {
    @TableId(type = IdType.AUTO)
    private int guanmaiSkuId;
    // SKU的唯一标识，对应JSON中的"sku_id"字段
    @JSONField(name = "sku_id")
    private String skuId;

    // SKU对应的商品名称，对应JSON中的"sku_name"字段，方便展示该SKU具体代表的商品名字
    @JSONField(name = "sku_name")
    private String skuName;


    // 对应的SPU（标准化产品单元）的唯一标识，对应JSON中的"spu_id"字段，用于关联所属的SPU
    @JSONField(name = "spu_id")
    private String spuId;

    // 销售比例，对应JSON中的"sale_ratio"字段，用于表示销售相关的比例数值，这里为1.0
    @JSONField(name = "sale_ratio")
    private BigDecimal saleRatio;

    // 标准单位名称，对应JSON中的"std_unit_name"字段，描述商品的标准计量单元，如"盒"
    @JSONField(name = "std_unit_name")
    private String stdUnitName;

    // 销售单位名称，对应JSON中的"sale_unit_name"字段，指明销售时使用的单位，此处也是"盒"
    @JSONField(name = "sale_unit_name")
    private String saleUnitName;

    // 销售价格，对应JSON中的"sale_price"字段，使用BigDecimal类型确保价格计算的精度，当前价格为2.54
    @JSONField(name = "sale_price")
    private BigDecimal salePrice;

    // 标准销售价格，对应JSON中的"std_sale_price"字段，同样用BigDecimal类型保证精度，这里是2.54
    @JSONField(name = "std_sale_price")
    private BigDecimal stdSalePrice;

    // 销售菜单的唯一标识，对应JSON中的"salemenu_id"字段，可能与商品在销售菜单中的定位相关
    @JSONField(name = "salemenu_id")
    private String salemenuId;

    // 商品状态，对应JSON中的"state"字段，用数字表示不同状态，此处为1代表某种具体状态
    @JSONField(name = "state")
    private int state;

    // 是否称重标志，对应JSON中的"weighing"字段，1表示需要称重，0表示不需要（此处为1表示需要称重）
    @JSONField(name = "weighing")
    private int weighing;

    // 是否是定时价格，对应JSON中的"is_price_timing"字段，0表示不是定时价格（此处为0）
    @JSONField(name = "is_price_timing")
    private int isPriceTiming;

    // 最小销售数量，对应JSON中的"sale_num_least"字段，使用BigDecimal类型准确表示数量，这里为1.0
    @JSONField(name = "sale_num_least")
    private BigDecimal saleNumLeast;

    // 销售库存类型，对应JSON中的"sale_stock_type"字段，用数字表示不同类型，此处为1代表某种库存类型
    @JSONField(name = "sale_stock_type")
    private int saleStockType;

    // 规格的唯一标识，对应JSON中的"spec_id"字段，用于标识商品的规格信息
    @JSONField(name = "spec_id")
    private String specId;

    // 创建时间，对应JSON中的"create_time"字段，以特定的时间格式记录商品SKU的创建时间
    @JSONField(name = "create_time")
    private String guanmaiCreateTime;

    // 修改时间，对应JSON中的"modify_time"字段，同样以时间格式记录商品SKU最后修改的时间，与创建时间可能相同
    @JSONField(name = "modify_time")
    private String guanmaiModifyTime;

    // 产地，对应JSON中的"origin_place"字段，用于记录商品的来源产地信息，当前为空字符串表示暂无相关信息
    @JSONField(name = "origin_place")
    private String originPlace;

    // 入库ID，对应JSON中的"in_id"字段，可能关联商品入库相关的唯一标识，当前为空表示暂无对应信息
    @JSONField(name = "in_id")
    private String inId;

    // 商品描述，对应JSON中的"desc"字段，用于对商品进行详细的文字描述，这里为空
    @JSONField(name = "desc")
    private String guanmaiDesc;

    // 一级分类的唯一标识，对应JSON中的"category1_id"字段，用于对商品进行大分类的标识，如"A1442302"代表某一具体一级分类
    @JSONField(name = "category1_id")
    private String category1Id;

    // 二级分类的唯一标识，对应JSON中的"category2_id"字段，进一步细分商品的分类，对应具体的二级分类标识，如"B2078160"
    @JSONField(name = "category2_id")
    private String category2Id;

    // 品类的唯一标识，对应JSON中的"pinlei_id"字段，用于更精准地定位商品所属的品类，如"P2650889"
    @JSONField(name = "pinlei_id")
    private String pinleiId;

    // 商品视频的URL，对应JSON中的"video_url"字段，可为空表示没有关联的商品视频链接
    @JSONField(name = "video_url")
    private String videoUrl;

    // 商品毛重，对应JSON中的"gross_weight"字段，可为空表示暂无毛重信息
    @JSONField(name = "gross_weight")
    private BigDecimal grossWeight;

    // 商品净重，对应JSON中的"net_weight"字段，同样可为空表示暂无净重信息
    @JSONField(name = "net_weight")
    private BigDecimal netWeight;
}
